public class test {
    //删除有序数组中的重复项（要求保持原数组的位置）
    //双指针:如果两个指针指向的内容不相同，那就进行替换
    public int removeDuplicates(int[] nums) {
        //处理特殊情况
        if(nums == null||nums.length == 0) return 0;

        int q = 0;//慢指针
        int p = 1;//快指针
        while(p<nums.length) {
            //如果指向的内容不相同，那就进行替换
            if(nums[q]!=nums[p]) {
                q++;
                nums[q] = nums[p];
                //相同快指针继续走
            } else {
                p++;
            }
        }
        //q代表的是下标，而返回值为新数组的长度，所以要+1
        return q+1;
    }
}
